package org.example.domain;

import java.util.ArrayList;
import java.util.List;

public class BookExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BookExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIsbnIsNull() {
            addCriterion("ISBN is null");
            return (Criteria) this;
        }

        public Criteria andIsbnIsNotNull() {
            addCriterion("ISBN is not null");
            return (Criteria) this;
        }

        public Criteria andIsbnEqualTo(String value) {
            addCriterion("ISBN =", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotEqualTo(String value) {
            addCriterion("ISBN <>", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnGreaterThan(String value) {
            addCriterion("ISBN >", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnGreaterThanOrEqualTo(String value) {
            addCriterion("ISBN >=", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnLessThan(String value) {
            addCriterion("ISBN <", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnLessThanOrEqualTo(String value) {
            addCriterion("ISBN <=", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnLike(String value) {
            addCriterion("ISBN like", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotLike(String value) {
            addCriterion("ISBN not like", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnIn(List<String> values) {
            addCriterion("ISBN in", values, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotIn(List<String> values) {
            addCriterion("ISBN not in", values, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnBetween(String value1, String value2) {
            addCriterion("ISBN between", value1, value2, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotBetween(String value1, String value2) {
            addCriterion("ISBN not between", value1, value2, "isbn");
            return (Criteria) this;
        }

        public Criteria andBooknameIsNull() {
            addCriterion("bookname is null");
            return (Criteria) this;
        }

        public Criteria andBooknameIsNotNull() {
            addCriterion("bookname is not null");
            return (Criteria) this;
        }

        public Criteria andBooknameEqualTo(String value) {
            addCriterion("bookname =", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameNotEqualTo(String value) {
            addCriterion("bookname <>", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameGreaterThan(String value) {
            addCriterion("bookname >", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameGreaterThanOrEqualTo(String value) {
            addCriterion("bookname >=", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameLessThan(String value) {
            addCriterion("bookname <", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameLessThanOrEqualTo(String value) {
            addCriterion("bookname <=", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameLike(String value) {
            addCriterion("bookname like", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameNotLike(String value) {
            addCriterion("bookname not like", value, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameIn(List<String> values) {
            addCriterion("bookname in", values, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameNotIn(List<String> values) {
            addCriterion("bookname not in", values, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameBetween(String value1, String value2) {
            addCriterion("bookname between", value1, value2, "bookname");
            return (Criteria) this;
        }

        public Criteria andBooknameNotBetween(String value1, String value2) {
            addCriterion("bookname not between", value1, value2, "bookname");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeIsNull() {
            addCriterion("printingtime is null");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeIsNotNull() {
            addCriterion("printingtime is not null");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeEqualTo(String value) {
            addCriterion("printingtime =", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeNotEqualTo(String value) {
            addCriterion("printingtime <>", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeGreaterThan(String value) {
            addCriterion("printingtime >", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeGreaterThanOrEqualTo(String value) {
            addCriterion("printingtime >=", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeLessThan(String value) {
            addCriterion("printingtime <", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeLessThanOrEqualTo(String value) {
            addCriterion("printingtime <=", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeLike(String value) {
            addCriterion("printingtime like", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeNotLike(String value) {
            addCriterion("printingtime not like", value, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeIn(List<String> values) {
            addCriterion("printingtime in", values, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeNotIn(List<String> values) {
            addCriterion("printingtime not in", values, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeBetween(String value1, String value2) {
            addCriterion("printingtime between", value1, value2, "printingtime");
            return (Criteria) this;
        }

        public Criteria andPrintingtimeNotBetween(String value1, String value2) {
            addCriterion("printingtime not between", value1, value2, "printingtime");
            return (Criteria) this;
        }

        public Criteria andBooksizeIsNull() {
            addCriterion("booksize is null");
            return (Criteria) this;
        }

        public Criteria andBooksizeIsNotNull() {
            addCriterion("booksize is not null");
            return (Criteria) this;
        }

        public Criteria andBooksizeEqualTo(String value) {
            addCriterion("booksize =", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotEqualTo(String value) {
            addCriterion("booksize <>", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeGreaterThan(String value) {
            addCriterion("booksize >", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeGreaterThanOrEqualTo(String value) {
            addCriterion("booksize >=", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeLessThan(String value) {
            addCriterion("booksize <", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeLessThanOrEqualTo(String value) {
            addCriterion("booksize <=", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeLike(String value) {
            addCriterion("booksize like", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotLike(String value) {
            addCriterion("booksize not like", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeIn(List<String> values) {
            addCriterion("booksize in", values, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotIn(List<String> values) {
            addCriterion("booksize not in", values, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeBetween(String value1, String value2) {
            addCriterion("booksize between", value1, value2, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotBetween(String value1, String value2) {
            addCriterion("booksize not between", value1, value2, "booksize");
            return (Criteria) this;
        }

        public Criteria andCategoryIsNull() {
            addCriterion("category is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIsNotNull() {
            addCriterion("category is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryEqualTo(String value) {
            addCriterion("category =", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotEqualTo(String value) {
            addCriterion("category <>", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryGreaterThan(String value) {
            addCriterion("category >", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryGreaterThanOrEqualTo(String value) {
            addCriterion("category >=", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryLessThan(String value) {
            addCriterion("category <", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryLessThanOrEqualTo(String value) {
            addCriterion("category <=", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryLike(String value) {
            addCriterion("category like", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotLike(String value) {
            addCriterion("category not like", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryIn(List<String> values) {
            addCriterion("category in", values, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotIn(List<String> values) {
            addCriterion("category not in", values, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryBetween(String value1, String value2) {
            addCriterion("category between", value1, value2, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotBetween(String value1, String value2) {
            addCriterion("category not between", value1, value2, "category");
            return (Criteria) this;
        }

        public Criteria andPcategoryIsNull() {
            addCriterion("pcategory is null");
            return (Criteria) this;
        }

        public Criteria andPcategoryIsNotNull() {
            addCriterion("pcategory is not null");
            return (Criteria) this;
        }

        public Criteria andPcategoryEqualTo(String value) {
            addCriterion("pcategory =", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryNotEqualTo(String value) {
            addCriterion("pcategory <>", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryGreaterThan(String value) {
            addCriterion("pcategory >", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryGreaterThanOrEqualTo(String value) {
            addCriterion("pcategory >=", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryLessThan(String value) {
            addCriterion("pcategory <", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryLessThanOrEqualTo(String value) {
            addCriterion("pcategory <=", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryLike(String value) {
            addCriterion("pcategory like", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryNotLike(String value) {
            addCriterion("pcategory not like", value, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryIn(List<String> values) {
            addCriterion("pcategory in", values, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryNotIn(List<String> values) {
            addCriterion("pcategory not in", values, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryBetween(String value1, String value2) {
            addCriterion("pcategory between", value1, value2, "pcategory");
            return (Criteria) this;
        }

        public Criteria andPcategoryNotBetween(String value1, String value2) {
            addCriterion("pcategory not between", value1, value2, "pcategory");
            return (Criteria) this;
        }

        public Criteria andImgIsNull() {
            addCriterion("img is null");
            return (Criteria) this;
        }

        public Criteria andImgIsNotNull() {
            addCriterion("img is not null");
            return (Criteria) this;
        }

        public Criteria andImgEqualTo(String value) {
            addCriterion("img =", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotEqualTo(String value) {
            addCriterion("img <>", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgGreaterThan(String value) {
            addCriterion("img >", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgGreaterThanOrEqualTo(String value) {
            addCriterion("img >=", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgLessThan(String value) {
            addCriterion("img <", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgLessThanOrEqualTo(String value) {
            addCriterion("img <=", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgLike(String value) {
            addCriterion("img like", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotLike(String value) {
            addCriterion("img not like", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgIn(List<String> values) {
            addCriterion("img in", values, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotIn(List<String> values) {
            addCriterion("img not in", values, "img");
            return (Criteria) this;
        }

        public Criteria andImgBetween(String value1, String value2) {
            addCriterion("img between", value1, value2, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotBetween(String value1, String value2) {
            addCriterion("img not between", value1, value2, "img");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberIsNull() {
            addCriterion("collectionnumber is null");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberIsNotNull() {
            addCriterion("collectionnumber is not null");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberEqualTo(String value) {
            addCriterion("collectionnumber =", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberNotEqualTo(String value) {
            addCriterion("collectionnumber <>", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberGreaterThan(String value) {
            addCriterion("collectionnumber >", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberGreaterThanOrEqualTo(String value) {
            addCriterion("collectionnumber >=", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberLessThan(String value) {
            addCriterion("collectionnumber <", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberLessThanOrEqualTo(String value) {
            addCriterion("collectionnumber <=", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberLike(String value) {
            addCriterion("collectionnumber like", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberNotLike(String value) {
            addCriterion("collectionnumber not like", value, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberIn(List<String> values) {
            addCriterion("collectionnumber in", values, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberNotIn(List<String> values) {
            addCriterion("collectionnumber not in", values, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberBetween(String value1, String value2) {
            addCriterion("collectionnumber between", value1, value2, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCollectionnumberNotBetween(String value1, String value2) {
            addCriterion("collectionnumber not between", value1, value2, "collectionnumber");
            return (Criteria) this;
        }

        public Criteria andCounterpartIsNull() {
            addCriterion("counterpart is null");
            return (Criteria) this;
        }

        public Criteria andCounterpartIsNotNull() {
            addCriterion("counterpart is not null");
            return (Criteria) this;
        }

        public Criteria andCounterpartEqualTo(String value) {
            addCriterion("counterpart =", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartNotEqualTo(String value) {
            addCriterion("counterpart <>", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartGreaterThan(String value) {
            addCriterion("counterpart >", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartGreaterThanOrEqualTo(String value) {
            addCriterion("counterpart >=", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartLessThan(String value) {
            addCriterion("counterpart <", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartLessThanOrEqualTo(String value) {
            addCriterion("counterpart <=", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartLike(String value) {
            addCriterion("counterpart like", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartNotLike(String value) {
            addCriterion("counterpart not like", value, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartIn(List<String> values) {
            addCriterion("counterpart in", values, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartNotIn(List<String> values) {
            addCriterion("counterpart not in", values, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartBetween(String value1, String value2) {
            addCriterion("counterpart between", value1, value2, "counterpart");
            return (Criteria) this;
        }

        public Criteria andCounterpartNotBetween(String value1, String value2) {
            addCriterion("counterpart not between", value1, value2, "counterpart");
            return (Criteria) this;
        }

        public Criteria andPinyinIsNull() {
            addCriterion("Pinyin is null");
            return (Criteria) this;
        }

        public Criteria andPinyinIsNotNull() {
            addCriterion("Pinyin is not null");
            return (Criteria) this;
        }

        public Criteria andPinyinEqualTo(String value) {
            addCriterion("Pinyin =", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinNotEqualTo(String value) {
            addCriterion("Pinyin <>", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinGreaterThan(String value) {
            addCriterion("Pinyin >", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinGreaterThanOrEqualTo(String value) {
            addCriterion("Pinyin >=", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinLessThan(String value) {
            addCriterion("Pinyin <", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinLessThanOrEqualTo(String value) {
            addCriterion("Pinyin <=", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinLike(String value) {
            addCriterion("Pinyin like", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinNotLike(String value) {
            addCriterion("Pinyin not like", value, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinIn(List<String> values) {
            addCriterion("Pinyin in", values, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinNotIn(List<String> values) {
            addCriterion("Pinyin not in", values, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinBetween(String value1, String value2) {
            addCriterion("Pinyin between", value1, value2, "pinyin");
            return (Criteria) this;
        }

        public Criteria andPinyinNotBetween(String value1, String value2) {
            addCriterion("Pinyin not between", value1, value2, "pinyin");
            return (Criteria) this;
        }

        public Criteria andInitialIsNull() {
            addCriterion("initial is null");
            return (Criteria) this;
        }

        public Criteria andInitialIsNotNull() {
            addCriterion("initial is not null");
            return (Criteria) this;
        }

        public Criteria andInitialEqualTo(String value) {
            addCriterion("initial =", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialNotEqualTo(String value) {
            addCriterion("initial <>", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialGreaterThan(String value) {
            addCriterion("initial >", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialGreaterThanOrEqualTo(String value) {
            addCriterion("initial >=", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialLessThan(String value) {
            addCriterion("initial <", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialLessThanOrEqualTo(String value) {
            addCriterion("initial <=", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialLike(String value) {
            addCriterion("initial like", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialNotLike(String value) {
            addCriterion("initial not like", value, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialIn(List<String> values) {
            addCriterion("initial in", values, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialNotIn(List<String> values) {
            addCriterion("initial not in", values, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialBetween(String value1, String value2) {
            addCriterion("initial between", value1, value2, "initial");
            return (Criteria) this;
        }

        public Criteria andInitialNotBetween(String value1, String value2) {
            addCriterion("initial not between", value1, value2, "initial");
            return (Criteria) this;
        }

        public Criteria andCallnumberIsNull() {
            addCriterion("callnumber is null");
            return (Criteria) this;
        }

        public Criteria andCallnumberIsNotNull() {
            addCriterion("callnumber is not null");
            return (Criteria) this;
        }

        public Criteria andCallnumberEqualTo(String value) {
            addCriterion("callnumber =", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberNotEqualTo(String value) {
            addCriterion("callnumber <>", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberGreaterThan(String value) {
            addCriterion("callnumber >", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberGreaterThanOrEqualTo(String value) {
            addCriterion("callnumber >=", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberLessThan(String value) {
            addCriterion("callnumber <", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberLessThanOrEqualTo(String value) {
            addCriterion("callnumber <=", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberLike(String value) {
            addCriterion("callnumber like", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberNotLike(String value) {
            addCriterion("callnumber not like", value, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberIn(List<String> values) {
            addCriterion("callnumber in", values, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberNotIn(List<String> values) {
            addCriterion("callnumber not in", values, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberBetween(String value1, String value2) {
            addCriterion("callnumber between", value1, value2, "callnumber");
            return (Criteria) this;
        }

        public Criteria andCallnumberNotBetween(String value1, String value2) {
            addCriterion("callnumber not between", value1, value2, "callnumber");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNull() {
            addCriterion("author is null");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNotNull() {
            addCriterion("author is not null");
            return (Criteria) this;
        }

        public Criteria andAuthorEqualTo(String value) {
            addCriterion("author =", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotEqualTo(String value) {
            addCriterion("author <>", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThan(String value) {
            addCriterion("author >", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThanOrEqualTo(String value) {
            addCriterion("author >=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThan(String value) {
            addCriterion("author <", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThanOrEqualTo(String value) {
            addCriterion("author <=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLike(String value) {
            addCriterion("author like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotLike(String value) {
            addCriterion("author not like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorIn(List<String> values) {
            addCriterion("author in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotIn(List<String> values) {
            addCriterion("author not in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorBetween(String value1, String value2) {
            addCriterion("author between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotBetween(String value1, String value2) {
            addCriterion("author not between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andPublisherIsNull() {
            addCriterion("publisher is null");
            return (Criteria) this;
        }

        public Criteria andPublisherIsNotNull() {
            addCriterion("publisher is not null");
            return (Criteria) this;
        }

        public Criteria andPublisherEqualTo(String value) {
            addCriterion("publisher =", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotEqualTo(String value) {
            addCriterion("publisher <>", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherGreaterThan(String value) {
            addCriterion("publisher >", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherGreaterThanOrEqualTo(String value) {
            addCriterion("publisher >=", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLessThan(String value) {
            addCriterion("publisher <", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLessThanOrEqualTo(String value) {
            addCriterion("publisher <=", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLike(String value) {
            addCriterion("publisher like", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotLike(String value) {
            addCriterion("publisher not like", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherIn(List<String> values) {
            addCriterion("publisher in", values, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotIn(List<String> values) {
            addCriterion("publisher not in", values, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherBetween(String value1, String value2) {
            addCriterion("publisher between", value1, value2, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotBetween(String value1, String value2) {
            addCriterion("publisher not between", value1, value2, "publisher");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceIsNull() {
            addCriterion("collectionplace is null");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceIsNotNull() {
            addCriterion("collectionplace is not null");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceEqualTo(String value) {
            addCriterion("collectionplace =", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceNotEqualTo(String value) {
            addCriterion("collectionplace <>", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceGreaterThan(String value) {
            addCriterion("collectionplace >", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceGreaterThanOrEqualTo(String value) {
            addCriterion("collectionplace >=", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceLessThan(String value) {
            addCriterion("collectionplace <", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceLessThanOrEqualTo(String value) {
            addCriterion("collectionplace <=", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceLike(String value) {
            addCriterion("collectionplace like", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceNotLike(String value) {
            addCriterion("collectionplace not like", value, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceIn(List<String> values) {
            addCriterion("collectionplace in", values, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceNotIn(List<String> values) {
            addCriterion("collectionplace not in", values, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceBetween(String value1, String value2) {
            addCriterion("collectionplace between", value1, value2, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andCollectionplaceNotBetween(String value1, String value2) {
            addCriterion("collectionplace not between", value1, value2, "collectionplace");
            return (Criteria) this;
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}